package com.yuven.appframework.util

import android.os.SystemClock

object TimeManager {
    private var differenceTime = 0L   //以前服务器时间 - 以前服务器时间的获取时刻的系统启动时间,即：手机开机时的服务器时间
    private var isServerTime = false  //是否是服务器时间

    /**
     * 获取当前时间
     *
     * @return the time
     */
    @Synchronized
    fun getServiceTime(): Long {
        if (!isServerTime) {
            //todo 这里可以加上触发获取服务器时间操作
            return System.currentTimeMillis();
        }

        //时间差加上当前手机启动时间就是准确的服务器时间了
        return differenceTime + SystemClock.elapsedRealtime();
    }

    /**
     * 时间校准
     *
     * @param lastServiceTime 当前服务器时间
     * @return the long
     */
    @Synchronized
    fun initServerTime(lastServiceTime: Long): Long {
        //记录时间差
        differenceTime = lastServiceTime - SystemClock.elapsedRealtime();
        isServerTime = true;
        return lastServiceTime;
    }
}